package models

import (
	"time"
)

// MaOrder [...]
type MaLotteryOrder struct {
	OrderID            string    `gorm:"index:OrderID,type:btree;autoIncrement:true;primaryKey;column:order_id;type:int(10) unsigned;not null" json:"order_id" json_old:"OrderID"`
	ID                 string    `gorm:"autoIncrement:false;column:id;type:bigint;not null;comment:商户ID" json:"id" json_old:"ID"`
	MerchantID         string    `gorm:"index:idx_aomdp,priority:3,type:btree,comment:订单统计交易额统计;column:merchant_id;type:varchar(30);not null;comment:商户id" json:"merchant_id"`
	SalesID            string    `gorm:"index:SalesID,type:btree;column:sales_id;type:varchar(50);not null;comment:机器标识ID" json:"sales_id" json_old:"SalesID"`
	AddTime            time.Time `gorm:"index:idx_aomdp,priority:1,type:btree,comment:订单统计交易额统计;column:add_time;type:datetime;not null;comment:订单生成时间" json:"-" json_old:"AddTime"`
	AddTimeFormated    string    `gorm:"-" json:"add_time"`
	RobotName          string    `gorm:"index:idx_createdDate_robotName,priority:2;column:robot_name;type:varchar(255);not null;comment:机器名称" json:"robot_name" json_old:"RobotName"`
	OutTradeNo         string    `gorm:"uniqueIndex:OutTradeNoIndex,priority:1;column:out_trade_no;type:varchar(255);not null;default:'';comment:订单号" json:"out_trade_no" json_old:"OutTradeNo"`
	ChildOutTradeNo    string    `gorm:"uniqueIndex:OutTradeNoIndex,priority:2;index:idx_child_out_trade_no;column:child_out_trade_no;type:varchar(255); not null;default:'';comment:子订单号" json:"child_out_trade_no" json_old:"ChildOutTradeNo"`
	RefundTradeNo      string    `gorm:"index:ReFunTradeNo,type:btree;column:refund_trade_no;type:varchar(50);default:null;comment:退款交易号" json:"refund_trade_no" json_old:"ReFunTradeNo"`
	OrderStatus        int       `gorm:"index:idx_aomdp,priority:2,type:btree,comment:订单统计交易额统计;column:order_status;type:tinyint(1);not null;comment:0-未初始化 1-创建成功 2-支付成功 3-未支付 4-出货成功 5-出货失败 6-退款 7-错误" json:"order_status" json_old:"OrderStatus"`
	End                int       `gorm:"column:end;type:tinyint(1);not null;comment:0-正在进行 1-已结束" json:"end" json_old:"End"`
	PaymentID          int8      `gorm:"index:PaymentID,type:btree;column:payment_id;type:tinyint;not null;default:0;comment:1-微信 2-支付宝 3支付宝人脸; 3-刷卡 4-好邻居 5 - 兑换码 6 大兴支付 7 赠送" json:"payment_id" json_old:"PaymentID"`
	Areas1             int       `gorm:"column:areas1;type:bigint;default:null;comment:省级ID" json:"areas1" json_old:"Areas1"`
	Areas2             int       `gorm:"column:areas2;type:bigint;default:null;comment:市ID" json:"areas2" json_old:"Areas2"`
	Areas3             int       `gorm:"column:areas3;type:bigint;default:null;comment:商场ID" json:"areas3" json_old:"Areas3"`
	Areas4             int       `gorm:"column:areas4;type:bigint;default:null;comment:自定义标签ID" json:"areas4" json_old:"Areas4"`
	Areas5             int       `gorm:"column:areas5;type:bigint;default:null;comment:区县ID" json:"areas5" json_old:"Areas5"`
	EndOutTradeNo      string    `gorm:"index:idx_end_out_trade_no;column:end_out_trade_no;type:varchar(50);default:null" json:"end_out_trade_no" json_old:"EndOutTradeNo"`
	CountData          string    `gorm:"column:count_data;type:text;not null" json:"count_data" json_old:"CountData"`
	PaymentAmount      float64   `gorm:"index:idx_aomdp,priority:5,type:btree,comment:订单统计交易额统计;column:payment_amount;type:decimal(10,2);default:0.00;comment:订单金额" json:"payment_amount" json_old:"PaymentAmount"`
	ModifyTime         time.Time `gorm:"column:modify_time;type:datetime;default:null;comment:修改时间" json:"-" json_old:"ModifyTime"`
	ModifyTimeFormated string    `gorm:"-" json:"modify_time"`
	Remarks            string    `gorm:"column:remarks;type:text;default:null;comment:订单备注" json:"remarks" json_old:"Remarks"`
	ErrorCode          string    `gorm:"column:error_code;type:varchar(255);default:null" json:"error_code" json_old:"ErrorCode"`
	LogMsg             string    `gorm:"column:log_msg;type:varchar(255);default:null" json:"log_msg" json_old:"LogMsg"`
	OrigialOutTradeNo  string    `gorm:"column:origial_out_trade_no;type:varchar(255);default:null" json:"origial_out_trade_no" json_old:"OrigialOutTradeNo"`
	CreatedAt          int64     `json:"created_at" gorm:"column:created_at;autoCreateTime;type:int;size:64;comment:创建时间"`
	UpdatedAt          int64     `json:"updated_at" gorm:"column:updated_at;autoUpdateTime;type:int;size:64;comment:更新时间"`
	CreatedDate        time.Time `gorm:"index:idx_createdDate_robotName,priority:1;column:created_date;type:date;default:'1970-01-01';comment:日期" json:"created_date" json_old:"CreatedDate"`
	ActivityID         string    `gorm:"column:activity_id;type:varchar(20);default:null;comment:活动ID" json:"activity_id" json_old:"ActivityID"`
	PrizeRuleID        string    `gorm:"column:prize_rule_id;type:varchar(30);default:null;comment:奖项ID,即中奖等级是什么" json:"prize_rule_id" json_old:"PrizeRuleID"`
	OldOutTradeNo      string    `gorm:"column:old_out_trade_no;type:varchar(50);default:null;comment:旧的订单号" json:"old_out_trade_no" json_old:"OldOutTradeNo"`
}

// TableName get sql table name.获取数据库表名
func (m MaLotteryOrder) TableName() string {
	return "ma_lottery_order"
}

// 模式自动注册
func init() {
	Models = append(Models, &MaLotteryOrder{})
}
